package com.gollum.jpa.util;


import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * <pre>排序工具类 </pre>
 *
 * @author Herther
 * @version 1.0.0
 * @createTime 2022年08月19日 21:31:00
 */

public class SortUtils {

    /**
     * 功能描述: 获取排序字符串集合
     *
     * @param sortmap map 排序规则 {排序字段1：asc，排序字段2：desc}  配置多个
     * @return 字符串集合 字符串 username:desc,password:asc
     * @auther: Herther
     * @version 1.0.0
     * @date: 2022/8/18 22:41
     */
    public static List<String> mapSortToList(Map<String,String> sortmap){
        List<String> sorts = new ArrayList<>();
        if (Objects.nonNull(sortmap)){
            if (sortmap.isEmpty()){
                return sorts;
            }
            sortmap.forEach((key,val)->{
                sorts.add(new StringBuilder().append(key).append(":").append(val).toString());
            });
            return sorts;
        }
        return sorts;
    }


    /**
     * 功能描述: 获取字符串排序集合，通过map转
     *
     * @param sortmap map 排序规则 {排序字段1：asc，排序字段2：desc}  配置多个
     * @return 字符串 字符串 username:desc,password:asc
     * @auther: Herther
     * @version 1.0.0
     * @date: 2022/8/18 22:41
     */
    public static String mapSortToString(Map<String,String> sortmap){
        StringBuilder sorts = new StringBuilder();
        if (Objects.nonNull(sortmap)){
            if (sortmap.isEmpty()){
                return null;
            }
            sortmap.forEach((key,val)->{
                sorts.append(key).append(":").append(val).append(",");
            });
            return sorts.toString().substring(0,sorts.length() -1);
        }
        return null;
    }

}
